﻿using System;
using System.Collections.Generic;
using System.ServiceModel;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using ET.Score.Service.Dtos;
namespace ET.Score.Service
{
  public  class AdvDriveTaskInfo : INotifyPropertyChanged
    {
        private int m_trainId;
        private int m_simTrainId;
        private byte m_dir;//运行方向
        private int m_ststaionId;// 始发站
        private DateTime m_startTime;
        private List<TrainGraphRunDto> m_planlst;
        private int m_tmnstationId;//终点站
        private string m_ststationname;//始发站名
        private int m_totalscore;//准点率
        public int Totalscore
        {
            get { return m_totalscore; }
            set { m_totalscore = value; OnPropertyChanged(); }
        }
        public string StStationName
        {
            get { return m_ststationname; }
            set { m_ststationname = value; OnPropertyChanged(); }
        }
        private string m_endstationname;//终点站名
        public string EndStationName
        {
            get { return m_endstationname; }
            set { m_endstationname = value; OnPropertyChanged(); }
        }
        private int taskstate;//任务状态
        public int TaskState
        {
            get { return taskstate; }
            set
            {
                taskstate = value;
                OnPropertyChanged();
            }
        } //任务状态
        private string m_curStationname;//当前到站名
        public string CurStationName
        {
            get { return m_curStationname; }
            set { m_curStationname = value; OnPropertyChanged(); }
        }
        private string m_arriveTimePlan;//计划达到时间
        public string ArriveTimePlan
        {
            get { return m_arriveTimePlan; }
            set { m_arriveTimePlan = value; OnPropertyChanged(); }
        }
        private string m_arriveTimeReal;//实际到时间
        public string ArriveTimeReal
        {
            get { return m_arriveTimeReal; }
            set { m_arriveTimeReal = value; OnPropertyChanged(); }
        }
        public event PropertyChangedEventHandler PropertyChanged;
        public AdvDriveTaskInfo()
        {
            m_planlst = new List<TrainGraphRunDto>();
        }
        public int TrainId
        {
            get { return m_trainId; }
            set { m_trainId = value; OnPropertyChanged(); }
        }
        public int SimTrainId
        {
            get { return m_simTrainId; }
            set { m_simTrainId = value; OnPropertyChanged(); }
        }
        public byte Dir
        {
            get { return m_dir; }
            set { m_dir = value; OnPropertyChanged(); }
        }
        public int StStationId
        {
            get { return m_ststaionId; }
            set { m_ststaionId = value; OnPropertyChanged(); }
        }
        public int TMNStationId
        {
            get { return m_tmnstationId; }
            set { m_tmnstationId = value; OnPropertyChanged(); }
        }
        public DateTime StartTime
        {
            get { return m_startTime; }
            set { m_startTime = value; OnPropertyChanged(); }
        }
        public List<TrainGraphRunDto> PlanList
        {
            get { return m_planlst; }
            set { m_planlst = value; OnPropertyChanged(); }
        }
        protected virtual void OnPropertyChanged([CallerMemberName] string propName = null)
        {
            var handle = PropertyChanged;
            if (handle != null)
                handle(this, new PropertyChangedEventArgs(propName));
        }

    }
}
